REM --- zroot --- 複素数 z=zr+i*zi の √z の計算 ------ REM REM サブルーチン使用 REM (注)z の平方根は -√z もあり REM ---------------------------------- joe 5.15 '19 ------ INPUT PROMPT "zr,zi=":zr,zi GOSUB 1000 LET r=SQR(r) LET zr=r*COS(s/2) LET zi=r*SIN(s/2) PRINT "√z=";zr,zi GOTO 1100 REM REM =================================================================== 1000 REM--- サブルーチン polor; zr,zi をinputして r,θ(s) を返す REM ============================================================== LET pai=3.141592653589793 LET zero=1.e-7 LET r=SQR(zr*zr+zi*zi) IF ABS(zr)>= zero THEN GOTO 1010 IF zi>0 THEN 1020 ELSE 1030 1020 LET s=pai/2 RETURN 1030 IF zi<0 THEN 1040 ELSE 1050 1040 LET s=3*pai/2 RETURN 1050 LET s=0 RETURN REM ----------- 1010 LET AT=ATN(zi/zr) LET s=AT+pai IF zr>0 THEN LET s=AT RETURN REM ===================================== 1100 END